package com.limm.config;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import com.netflix.loadbalancer.WeightedResponseTimeRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateApi {


    /*
    RetryRule：先使用轮询算法进行，如果失败，会在特定的时间内进行重试。
    WeightedResponseTimeRule：权重
    RandomRule：随机
    RoundRobinRule ：轮询算法
    * AvailabilityFilteringRule :会先过滤掉一些跳闸、访问故障的服务，然后在剩下的进行轮询（优化版）
    * */

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }


    @Bean
    public IRule myRule() {

        return new WeightedResponseTimeRule();
    }


}
